MODULE pfmm_global_types

   IMPLICIT NONE
   PUBLIC   

!===============================================================================
   ! We select here the REAL and INTEGER precisions
   !   INTEGER, PARAMETER :: md1_INTK  = SELECTED_INT_KIND(9),           &
   !                         md1_REALK = SELECTED_REAL_KIND(XXX) 
   ! Use standard integers and REAL*8 double precision floats
   INTEGER, PARAMETER :: pfmm_INTK  = KIND(1),                         &
                         pfmm_REALK = KIND(1D0)

!===============================================================================
! Derived types |
!================

   ! (mn,nu^T) moments are stored contigously in one big array.
   ! This map tells us how they are batched into T-vector groups.
   TYPE T_vector_map
      INTEGER(pfmm_INTK) :: Tvec(3)
      INTEGER(pfmm_INTK) :: Tindex
   END TYPE T_vector_map

!------------------------------------------------------------------------------

END MODULE pfmm_global_types

